﻿using System;

namespace PolePositionMobile.Entities
{
    /// <summary>
    /// An entity representing project settings
    /// </summary>
    [Serializable]
    public class ESettingsStructure
    {
        //Created by: VMCoder
        //Creation date: -
        //Last updated by: VMCoder
        //Last update: 2008.04.10

        #region Private Members
        Int32 m_Timezone;
        EProject m_Project;
        EUser m_Contact;
        EVisitType m_VisitType;
        Int32 m_Handheld;
        EVendor m_Vendor;
        EUtility m_Utility;
        string m_VersionDatabase;
        #endregion Private Members

        #region Properties
        public Int32 Timezone
        {
            get { return m_Timezone; }
            set { m_Timezone = value; }
        }
        public EProject Project
        {
            get
            {
                return m_Project;
            }
            set
            {
                m_Project = value;
            }
        }
        public EUser Contact
        {
            get
            {
                return m_Contact;
            }
            set
            {
                m_Contact = value;
            }
        }
        public EVisitType VisitType
        {
            get
            {
                return m_VisitType;
            }
            set
            {
                m_VisitType = value;
            }
        }
        public Int32 Handheld
        {
            get
            {
                return m_Handheld;
            }
            set
            {
                m_Handheld = value;
            }
        }
        public EVendor Vendor
        {
            get
            {
                return m_Vendor;
            }
            set
            {
                m_Vendor = value;
            }
        }
        public EUtility Utility
        {
            get
            {
                return m_Utility;
            }
            set
            {
                m_Utility = value;
            }
        }
        public string VersionDatabase
        {
            get
            {
                return m_VersionDatabase;
            }
            set
            {
                m_VersionDatabase = value;
            }
        }

        #endregion Properties

        #region Constructors
        public ESettingsStructure()
        {
            m_Timezone = Int32.MinValue;
            m_Handheld = Int32.MinValue;

            m_VisitType = new EVisitType();
            m_Project = new EProject();
            m_Contact = new EUser();
            m_Utility = new EUtility();
            m_Vendor = new EVendor();
        }
        public ESettingsStructure(Int32 timezone)
            : this()
        {
            m_Timezone = timezone;
        }

        public ESettingsStructure(Int32 timezone, EProject project, EUser contact, EVisitType visitType, Int32 Handheld, EVendor vendor, EUtility utility)
            : this(timezone) 
        {
            m_Project = project;
            m_Contact = contact;
            m_VisitType = visitType;
            m_Handheld = Handheld;
            m_Vendor = vendor;
            m_Utility = utility;
        
        }
        #endregion Constructors
    }
}
